﻿using ConfExpert.Forms.Base;
using ConfExpert.Utility;
using DevTeam;

using System;
using System.Data;

namespace ConfExpert.Forms.SatinAlma.YeniYapi.Confirmation
{
    public partial class YeniKonf : XForm
    {
        int UreticiId = 0;
        public YeniKonf(int UreticiId)
        {
            InitializeComponent();
            this.UreticiId = UreticiId;
        }

        private void YeniKonf_Load(object sender, EventArgs e)
        {
            //gridView7.SetViewCaption("Detay");
            //gridView7.Init("GetKonfArtikel", xml);
            //gridView7.MakeColumnInvisible("KonfId");
            //gridView7.MakeReadOnly("Böl", "Fiyat");
            //gridView7.SutunEkle("Tutar", typeof(decimal), "Böl*Fiyat");
            //gridView7.FormatAsNumber(2, "Böl", "Fiyat", "Tutar");
            //gridView7.AddSummary("Böl", "Tutar");
            //gridView7.BestFitColumns();

            btnKaydet.ItemClick += btnKaydet_ItemClick;
            //beMevcut.ItemClick+=beMevcut_ItemClick;

            dtKonfirmasyon.Columns.Add("KonfirmasyonTarihi_str", typeof(DateTime));
            dtKonfirmasyon.Columns.Add("KonfirmasyonNo", typeof(string));
            dtKonfirmasyon.Columns.Add("CurrencyId", typeof(int));
            dtKonfirmasyon.Columns.Add("PaymentMethodId", typeof(int));
            dtKonfirmasyon.Columns.Add("PaymentTermId", typeof(int));
            dtKonfirmasyon.Columns.Add("TeslimSekliId", typeof(int));
            dtKonfirmasyon.Columns.Add("OngYuklemeSekliId", typeof(int));
            //dtKonfirmasyon.Columns.Add("OngYuklemeTarihi_str", typeof(DateTime));
            dtKonfirmasyon.Columns.Add("CarrierId", typeof(int));

            gleOdemeSekli.Properties.Assign(RI(Rp.PaymentMethodA));
            gleOdemeTermini.Properties.Assign(RI(Rp.PaymentTerm));
            gleParabirimi.Properties.Assign(RI(Rp.Currency));
            //gleOngYuklemeSekli.Properties.Assign(RI(Rp.ShipMethod));

            DataTable dtSM = ExecuteDataTable("GetLegalShipMethods", UreticiId);
            gleOngYuklemeSekli.Properties.Assign(RepositoryManager.GetGLESablon(dtSM, "Name", "ShipMethodId"));


            gleCarrier.Properties.Assign(RI(Rp.Carrier));
            gleTeslimSekli.Properties.Assign(RI(Rp.TeslimSekliA));

            gleOdemeSekli.EditValue = 13;   //o vendor için veritabanından pref'leri çek ve doldur!
            gleOdemeTermini.EditValue = 1;
            gleParabirimi.EditValue = 1;

            deKonfirmasyon.EditValue = DateTime.Now;
            //deOngYuklemeTarihi.EditValue = null;

            beKonfirmasyonNo.ButtonClick += YeniKonf_ButtonClick;
            //beKonfirmasyonNo.ReadOnly = true;

            btnOnceki.ItemClick += btnOnceki_ItemClick;
        }

        void btnOnceki_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            beKonfirmasyonNo.Text = AppSession.OncekiKonf.KonfNo;
            deKonfirmasyon.EditValue = AppSession.OncekiKonf.KonfTarihi;
            gleParabirimi.EditValue = AppSession.OncekiKonf.CurrencyId;
            gleOdemeSekli.EditValue = AppSession.OncekiKonf.OdemeSekliId;
            gleOdemeTermini.EditValue = AppSession.OncekiKonf.OdemeTermini;
            gleTeslimSekli.EditValue = AppSession.OncekiKonf.TeslimSekliId;
            gleOngYuklemeSekli.EditValue = AppSession.OncekiKonf.OngYuklemeSekliId;
            //deOngYuklemeTarihi.EditValue = Session.OncekiKonf.OngYuklemeTarihi;
            gleCarrier.EditValue = AppSession.OncekiKonf.CarrierId;
        }

        DataTable dtKonfirmasyon = new DataTable();
        public string header = string.Empty;
        void btnKaydet_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            AppSession.OncekiKonf = new AppSession.clsOncekiKonf();

            if (beKonfirmasyonNo.Text != string.Empty)
                AppSession.OncekiKonf.KonfNo = beKonfirmasyonNo.Text;

            if (deKonfirmasyon.EditValue != null)
                AppSession.OncekiKonf.KonfTarihi = deKonfirmasyon.EditValue.ToDate();

            if (gleParabirimi.EditValue != null)
                AppSession.OncekiKonf.CurrencyId = gleParabirimi.EditValue.ToInt();

            if (gleOdemeSekli.EditValue != null)
                AppSession.OncekiKonf.OdemeSekliId = gleOdemeSekli.EditValue.ToInt();

            if (gleOdemeTermini.EditValue != null)
                AppSession.OncekiKonf.OdemeTermini = gleOdemeTermini.EditValue.ToInt();

            if (gleTeslimSekli.EditValue != null)
                AppSession.OncekiKonf.TeslimSekliId = gleTeslimSekli.EditValue.ToInt();

            if (gleOngYuklemeSekli.EditValue != null)
                AppSession.OncekiKonf.OngYuklemeSekliId = gleOngYuklemeSekli.EditValue.ToInt();

            //            if (deOngYuklemeTarihi.EditValue != null)
            //                Session.OncekiKonf.OngYuklemeTarihi = deOngYuklemeTarihi.EditValue.ToDate();

            if (gleCarrier.EditValue != null)
                AppSession.OncekiKonf.CarrierId = gleCarrier.EditValue.ToInt();


            dtKonfirmasyon.Rows.Clear();
            dtKonfirmasyon.Rows.Add(deKonfirmasyon.DateTime, beKonfirmasyonNo.Text, gleParabirimi.EditValue, gleOdemeSekli.EditValue, gleOdemeTermini.EditValue, gleTeslimSekli.EditValue, gleOngYuklemeSekli.EditValue, gleCarrier.EditValue);

            if (gleOngYuklemeSekli.EditValue.ToInt() == 0)
                ShowErrorMessage("Yükleme Şekli boş bırakılamaz.");
            else
            {
                header = dtKonfirmasyon.Serialize();
                this.DialogResult = System.Windows.Forms.DialogResult.OK;
            }
        }

        void YeniKonf_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            using (MevcutKonf ks = new MevcutKonf(UreticiId))
                if (ks.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    beKonfirmasyonNo.EditValue = ks.KonfirmasyonNo;

                    deKonfirmasyon.EditValue = ks.KonfirmasyonTarihi;
                    beKonfirmasyonNo.Text = ks.KonfirmasyonNo;
                    gleParabirimi.EditValue = ks.CurrencyId;
                    gleOdemeSekli.EditValue = ks.PaymentMethodId;
                    gleOdemeTermini.EditValue = ks.PaymentTermId;
                    gleTeslimSekli.EditValue = ks.TeslimSekliId;
                    gleOngYuklemeSekli.EditValue = ks.OngYuklemeSekliId;
                    //deOngYuklemeTarihi.EditValue = ks.OngYuklemeTarihi;
                    gleCarrier.EditValue = ks.CarrierId;
                }

        }
    }
}
